const p = new Proxy(
  {},
  {
    /**
     *
     * @param {*} target 源对象
     * @param {*} prop 监听的属性名
     * @param {*} desc Object.defineProperty 属性描述符
     * @returns 返回一个布尔值,表示定义属性的操作是否成功
     */
    defineProperty: (target, prop, desc) => {
      console.log(target, prop, desc);
      return true;
    },
  }
);

Object.defineProperty(p, 'name', {
  configurable: true, // true ==> 可以被删除
  value: 'zhangsan', // value
  writable: true, // true ==> 可以被修改
});
